﻿//using QuanLyGiaoVuDAL.ADOWrapper;
//using QuanLyGiaoVuDAL.Mapper;
//using QuanLyGiaoVuDAL.DTO;
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Data;
//using System.Data.SqlClient;

//namespace QuanLyGiaoVuDAL.Repositories.DatabaseRepositories
//{
//    public class CaRepository : ICaRepository
//    {
//        public CaDTO GetCaById(Guid caId)
//        {
//            var dbResult = StoreProcedureExecutor.ExecuteStoreProcedure("[dbo].[usp_CaSelect]", DBParameterFactory.Create("@MaCa", caId));
//            var dataRow = dbResult.Tables[0].Rows[0];
//            return dataRow.ToCaDTO();
//        }

//        public IEnumerable<CaDTO> GetAllCa()
//        {
//            List<CaDTO> caList = new List<CaDTO>();
//            var parameter = DBParameterFactory.Create("MaCa", SqlDbType.UniqueIdentifier, DBNull.Value);
//            var dbResult = StoreProcedureExecutor.ExecuteStoreProcedure("[dbo].[usp_CaSelect]", parameter);
//            var caTable = dbResult.Tables[0].Rows;
//            foreach (DataRow dataRow in caTable)
//            {
//                caList.Add(dataRow.ToCaDTO());
//            }
//            return caList.AsEnumerable();
//        }

//        public CaDTO InsertCa(CaDTO caDto)
//        {
//            var dbResult = StoreProcedureExecutor.ExecuteStoreProcedure("[dbo].[usp_CaInsert]", GetParameterArray(caDto));
//            var dataRow = dbResult.Tables[0].Rows[0];
//            return dataRow.ToCaDTO();
//        }

        
//        public CaDTO UpdateCa(CaDTO caDto)
//        {
//            var dbResult = StoreProcedureExecutor.ExecuteStoreProcedure("[dbo].[usp_CaUpdate]", GetParameterArray(caDto));
//            var dataRow = dbResult.Tables[0].Rows[0];
//            return dataRow.ToCaDTO();
//        }

//        public bool DeleteCa(Guid caId)
//        {
//            return StoreProcedureExecutor.ExecuteNonQueryStoredProcedure("[dbo].[usp_CaDelete]", new SqlParameter("@MaCa", caId));
//        }

//        #region Private Methods
//        private System.Data.SqlClient.SqlParameter[] GetParameterArray(CaDTO caDto)
//        {
//            SqlParameter[] parameters = new SqlParameter[6];
//            parameters[0] = DBParameterFactory.Create("MaCa", caDto.MaCa);
//            parameters[1] = DBParameterFactory.Create("TenCa", caDto.TenCa);
//            parameters[1] = DBParameterFactory.Create("ThoiGianBatDau", caDto.ThoiGianBatDau);
//            parameters[2] = DBParameterFactory.Create("ThoiGianKetThuc", caDto.ThoiGianKetThuc);
//            parameters[3] = DBParameterFactory.Create("TietBatDau", caDto.TietBatDau);
//            parameters[4] = DBParameterFactory.Create("TietKetThuc", caDto.TietKetThuc);

//            return parameters;
//        }
//        #endregion
//    }
//}
